import { capitalizeFirstLetter } from '@/utils/str'
/**
 * api接口的统一出口
 */
// 会员
import FaSysMember from '@/api/sys/FaSysMember'
// 菜单
import FaSysMenu from '@/api/sys/FaSysMenu'
// 数据源
import FaSysDataSource from '@/api/sys/FaSysDataSource'
// 网格
import FaSysGrid from '@/api/sys/FaSysGrid'
// 选项
import FaSysOption from '@/api/sys/FaSysOption'
// 模块生成
import FaSysGen from '@/api/sys/FaSysGen'
// 模块生成
import FaSysSettings from '@/api/sys/FaSysSettings'
// 枚举
import FaSysEnum from '@/api/sys/FaSysEnum'
// 菜单视图
import FaSysMenuView from '@/api/sys/FaSysMenuView'
// 菜单视图
import FaSysRoleMenu from '@/api/sys/FaSysRoleMenu'
import BaseApi from './BaseApi'
// 导出接口
export default {
  /**
   * 动态获取 api 对象
   * @param {*} apiName api对象名称
   * @returns
   */
  getApi(apiName, gridId) {
    // try {
    // //此方法有代码注入风险，谨慎使用
    //   return eval(`new ${apiName}()`)
    // } catch (e) {
    //   console.log(`Api对象 ${apiName} 不存在,请联系系统开发人员!`)
    // }
    if (this[apiName]) {
      return new this[apiName](gridId)
    } else {
      console.log(`Api对象 ${apiName} 不存在,使用BaseApi!`)
      return new BaseApi('/' + capitalizeFirstLetter(apiName) + 'Api', gridId)
    }
  },
  FaSysMember,
  FaSysMenu,
  FaSysDataSource,
  FaSysGrid,
  FaSysOption,
  FaSysGen,
  FaSysSettings,
  FaSysEnum,
  FaSysMenuView,
  FaSysRoleMenu
}
